package com.cnap.db.mapper;

import com.cnap.db.entity.ClusterInfoPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 集群信息mapper
 *
 * @author xc
 **/
@Mapper
@Component
public interface ClusterInfoMapper {


    /**
     * 插入集群信息
     *
     * @param clusterInfoPO 集群信息
     * @return 结果
     */
    int insertClusterInfo(@Param("clusterInfo") ClusterInfoPO clusterInfoPO);

    /**
     * 更新集群信息
     *
     * @param updateInfo 更新的集群信息
     * @return 结果
     */
    int updateClusterInfo(@Param("updateInfo") ClusterInfoPO updateInfo);

    /**
     * 根据应用id查询集群信息
     *
     * @param appId 应用id
     * @return 结果
     */
    List<ClusterInfoPO> selectClusterInfoByAppId(@Param("appId") String appId);

    /**
     * 根据服务id（主键）查询
     *
     * @param svcId 服务id
     * @return 结果
     */
    ClusterInfoPO selectClusterInfoBySvcId(@Param("id") String svcId);

    /**
     * 根据服务id删除
     *
     * @param svcId 服务id
     * @return 结果
     */
    int deleteClusterInfoBySvcId(@Param("id") String svcId);

    /**
     * 根据id更新用户选择
     *
     * @param id              服务id
     * @param userChooseCloud 用户选择
     * @return 结果
     */
    int updateUserChooseCloudById(@Param("id") String id, @Param("userChooseCloud") String userChooseCloud);

    /**
     * 查询所有的集群信息
     *
     * @param userChooseCloud 用户选择云商
     * @return 结果
     */
    List<ClusterInfoPO> selectByUserChooseCloud(@Param("userChooseCloud") String userChooseCloud);
}
